//
//  CommonMethod.h
//  BSNL_Market
//
//  Created by ayi on 16/04/2018.
//  Copyright © 2018 ayi. All rights reserved.
//

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>
#import "UserRes.h"
@interface CommonMethod : NSObject


/**
 根据字符串返回颜色

 @param hexString 如：#333333
 @return 颜色
 */
+ (UIColor *) colorFromHexString:(NSString *)hexString;

/**
 根据时间戳与字符串来返回时间

 @param timeStampString 时间戳
 @param formatString 默认：yyyy-MM-dd
 @return 时间字符串
 */
+ (NSString *)stringFormTimeStamp:(double )timeStampString formatString:(NSString *)formatString;

/**
 获取uuid

 @return uuid
 */
+ (NSString *)uuid;


/**
 //计算lab的高度

 @param content 内容
 @param font font
 @param width 最大宽度
 @return size
 */
+(CGSize)labWidthFromStr:(NSString *)content andFont:(UIFont *)font andWidth:(CGFloat )width;
+(CGSize)labWidthFromAttributedString:(nonnull NSAttributedString *)content andWidth:(CGFloat )width;
/**
 //lab 的公共创建方式

 @param fontSize font
 @param color 颜色
 @param textAlign 布局
 @return UILabel
 */
//+ (UILabel *)customLabInitWith:(CGFloat )fontSize andTextColor:(UIColor *)color andAlign:(NSTextAlignment )textAlign;
//+ (UILabel *)customLabInitWith:(CGFloat )fontSize andTextColor:(UIColor *)color andAlign:(NSTextAlignment )textAlign withBgColor:(UIColor *)bgcolor;

/**
 UITextField 的公共创建方式

 @param fontSize FONT
 @param color 颜色
 @param textAlign 布局
 @param placeholder placeholder
 @return UITextField
 */
+ (UITextField *)customTextFieldInitWith:(CGFloat )fontSize andTextColor:(UIColor *)color andAlign:(NSTextAlignment )textAlign andPlaceholder:(NSString *)placeholder;


/**
 根据宽高计算压缩后的分辨率，宽高同时不超过设置的最大值

 @param size 原大小
 @param maxWidth 最大宽度
 @param maxHeight 最大高度
 @return 新的大小
 */
+ (CGSize)conversionSizeWithSize:(CGSize)size maxWidth:(float )maxWidth maxHeight:(float )maxHeight;

/**
 为控件添加虚线

 @param view 需添加虚线的view
 @param width 宽度
 @param patAry  线宽度，距离  exp:@[@4,@2]
 */
+ (void)addLimaginaryLineWithView:(UIView *)view andWidth:(CGFloat )width andColor:(UIColor *)color andLineDashPattern:(NSArray *)patAry;


/**
 根据颜色创建图片

 @param color 颜色
 @param frame 大小
 @return UIImage
 */
+ (UIImage *) createImageWithColor: (UIColor *) color WithFrame:(CGRect )frame;
+ (UIImage *) createImageCircleWithColor:(UIColor *) color WithFrame:(CGRect )frame;
+ (UIImage *) createImageCircleWithImage:(UIImage *)img;
/**
 给指点图片添加自定义背景 形成新的图片
 
 @param rect 背景大小
 @param placeImage 填充图片
 @param bgColor 填充背景颜色
 @param NoTranslucence 是否半透明 YES为不透明
 @return 新的图片
 */
+ (UIImage *) createImgWithBgViewFrame:(CGRect)rect withDefaultImage:(UIImage *)placeImage withBgColor:(UIColor *)bgColor withNoTranslucence:(BOOL)NoTranslucence;

/**
 颜色渐变 ，只有一个过渡，若需多种颜色过渡，请重新提取方法

 @param view 目标view
 @param fromHexColor 起始颜色
 @param toHexColor 终点颜色
 @return CAGradientLayer
 */
+ (CAGradientLayer *)layerColorGradualchange:(UIView *)view fromColor:(UIColor *)fromHexColor toColor:(UIColor *)toHexColor;
/**
 coreGraphics 方法颜色渐变 ，此方法为绘制矩形，其他图像暂不支持
 
 @param size size
 @param fromColor 起始颜色
 @param toColor 终点颜色
 @return UIImage
 */
+ (UIImage *)coreGraphicsColorGradualchange:(CGSize )size fromColor:(UIColor *)fromColor toColor:(UIColor *)toColor;
/**
 根据url创建二维码
 
 @param url URL
 @param size 大小
 @return UIImage
 */
+ (UIImage *)createQrcodeWithUrl:(NSString *)url withSize:(CGFloat) size;
/**
 根据字体大小，宽度计算内容高度，不适用于NSMutableAttributedString

 @param content 内容
 @param font 字体大小
 @param width 宽度
 @return CGSize
 */
+ (CGSize)getWidthWithStr:(NSString *)content andFont:(UIFont *)font andWidth:(CGFloat )width;


/**
 根据秒返回剩余时间字符串

 @param seconds 剩余秒终
 @return 时间字符串
 */
+(NSString *)getTimeStrFromSeconds:(NSInteger )seconds;
+(NSString *)getTimeStrFromTime:(NSDate *)date;
+(NSString *)getTimeStrFromTime2:(NSDate *)date;

/**
 抖动视图

 @param view 目标视图
 */
+ (void)shakeAnimationForView:(UIView *) view;


//获取app缓存
+ (void )getAPPCacheSize:(void(^)(NSString *size))callback;
//清除缓存
+ (void)deleteCache:(void(^)(BOOL isok))callback;





+ (BOOL )showViewWithDateTimeFromCurrent;


+ (NSString *)createMD5Key:(NSString *)md5Paraname ;

+ (NSString *)createShaKey:(NSString *)shaParaname;

+ (void)saveUser:(UserRes *)user;

+ (UserRes *)getUser;

+ (BOOL)isBlankString:(NSString *)string;

+ (void)saveUserName:(NSString *)mobile;
+ (NSString *)getUserName;
@end

